<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
            作用域就是用于限制变量的使用范围
            在js中作用域早期只有两种 分别是全局作用域 局部作用域
            后期新增了块级作用域
            局部作用域：在函数体内部创建的变量
            全局作用域：在函数体外部创建的变量 在浏览器端 存在一个最大的作用域叫做window作用域
        */
        // 1、认识全局与局部作用域
        let nickname = "隔壁老王";//全局作用域
        function fn() {
            // a被fn包裹 所以属于局部作用域下的变量 只要出了函数 a就无法使用
            let a = 20;
            console.log(nickname);
        }
        fn();
        console.log(nickname);
        // 2、关于js中函数嵌套
        // 赋值式语法 就是创建了一个fn2函数 所以函数就是一个变量
        // 在当前全局作用域中创建了fn5函数
        let fn2 = function(){}
        // 声明式的函数与赋值式函数本质一样
        // 在当前作用域中创建了fn3的变量
        function fn3(){

        }
        
        function fn4(){
            // 在fn4局部作用域中创建了fn5函数
            let fn5 = function(){}

            function fn6(){
                console.log('函数的套娃');
            }
            fn6();
        }
        fn4();
    </script>
</body>

</html>